package com.kakarote.examine.entity.PO;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 审批高级配置表
 * </p>
 *
 * @author zyl
 * @since 2022-08-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("wk_examine_advanced_config")
@ApiModel(value = "ExamineAdvancedConfig对象", description = "审批高级配置表")
public class ExamineAdvancedConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "高级配置id")
    @TableId(value = "advanced_config_id", type = IdType.ASSIGN_ID)
    private Long advancedConfigId;

    @ApiModelProperty(value = "审批配置id")
    private Long examineId;

    @ApiModelProperty(value = "异常处理类型1：自动同意2：转交给指定人员处理")
    private Integer nodeHandleType;

    @ApiModelProperty(value = "转交指定处理人")
    private String nodeHandleUser;

    @ApiModelProperty(value = "转交指定处理人角色")
    private String nodeHandleRole;

    @ApiModelProperty(value = "转交指定处理人指定上级")
    private String nodeHandleParentLevel;

    @ApiModelProperty(value = "当同一个审批人重复审批同一单据时处理类型1:仅首个节点需审批，其余自动同意2:仅连续审批时自动同意3:每个节点都需要审批")
    private Integer repeatHandleType;

    @ApiModelProperty(value = "审批被拒后重新提交类型1：跳过审批流已通过的层级，返回拒绝的层级2：返回审批流初始层级")
    private Integer rejectHandleType;

    @ApiModelProperty(value = "修改权限类型0：都不选1：提交申请时，员工不可修改固定审批人2：提交申请时，员工不可删除固定抄送人")
    private String modifyPermissionType;

    @ApiModelProperty(value = "是否开启限时配置:1是,0否")
    private Integer limitTimeStatus;

    @ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private Long createUserId;

    @ApiModelProperty(value = "更新人")
    private Long updateUserId;

    @ApiModelProperty(value = "创建日期")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新日期")
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "批次")
    private String batchId;


    @ApiModelProperty(value = "是否可转交 0 否 1 是")
    private Boolean isTransferable;

    @ApiModelProperty(value = "征求他人意见权限  0 否 1 是")
    private Boolean isConsult;

    @ApiModelProperty("是否允许撤回时选择撤回到哪个节点 0 否 1 是")
    private Boolean isRejectChooseFlow;

    @ApiModelProperty("发起人是否可撤回审批 0 否 1 是")
    private Boolean isCreateUserWithdraw;

    @ApiModelProperty("操作权限（十进制转二进制） 终止、作废、归档")
    private Integer privilege;
}
